#ifndef MOVE_API_H
#define MOVE_API_H
/**
 * 底盘移动控制驱动线程
 * 在底盘的控制部分的代码中需要控制底盘的驱动底盘的线速度和角速度，同时发布底盘传回来的两个轮速信号
 * 驱动方式使用的是串口连接，数据通过串口全双工发送和接收
*/
#include "baseTask.h"
#include "../tool/configManage.h"
#include "../device/chassisDevice.h"

/* ecal 和 protocol */
#include "control.pb.h"
#include "localization.pb.h"
#include <google/protobuf/io/zero_copy_stream_impl.h>
#include <google/protobuf/text_format.h>
#include <ctype.h>
#include <ecal/ecal.h>
#include <ecal/msg/protobuf/publisher.h>
#include <ecal/msg/protobuf/subscriber.h>
#include "../include/tool/log.h"
class C_moveApi : public C_baseTask
{
private:
    /* data */
    //C_chassisDevice *p_chassisDevice;
    std::string task_name;
    int task_period;
    std::string task_topic;

public:

    C_moveApi();
    ~C_moveApi();

    int32_t initTask(CONFIG_SINGCHIP &confif_singchip);
    void loop_processWheelSpeed (void);
    void runLoopTask(void);
    static void Callback(const MowerProtoPakg::controlMoveOrder& msg);
};

#endif
